/**
 * Author@ Cheng Feitian
 * Date: 2021-3-27
 * Description: this指针的使用
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

class Person
{
public:
    Person(int age)
    {
        //1、this指针解决命名冲突
        //this指针指向 被调用的成员函数 所属的对象
        this->age = age;
    }

    Person & PersonAddAge(Person &p){
        this->age += p.age;
        //2.返回对象本身
        // 目前的this指向p2的指针，而*this指向的就是p2这个对象本体
        return *this;
    }
    int age;
};

void test01()
{
    Person p(18);
    cout << "p 的年龄:" << p.age << endl;
}

void test02(){
    Person p1(10);
    Person p2(10);

    //链式编程思想
    p2.PersonAddAge(p1).PersonAddAge(p1).PersonAddAge(p1);
    cout << "p2 的年龄为：" << p2.age << endl;
}

int main()
{
    test01();
    test02();

    return 0;
}
